'use strict';
/**
 * 设置跨域 * 允许所有访问域名
 */

module.exports = () => {
  return async function setOrigin(ctx, next) {
    const { whiteList } = ctx.app.config.origin;
    /**
     * 如果传入的不是数组，直接抛出错误
     */

    // if (!Array.isArray(whiteList)) {
    //   throw Error('------- 跨域白名单必须设置为数组 ----------');
    // }
    // 当前访问的域名
    const { referer } = ctx.header;
    // 如果设置为 '*'， 就给访问的域名设置允许跨域
    if (whiteList.indexOf('*') > -1) {
      ctx.response.set('Access-Control-Allow-Origin', referer);
    } else if (whiteList.indexOf(referer) > -1) {
      ctx.response.set('Access-Control-Allow-Origin', referer);
    }
    await next();
  };
};
